Peters School of Business · Assiniboine College · NETW-0001
Operating Systems Fundamentals · 5 days · 2 hours/day + Friday mini-assessment
APT, dpkg, Snap — three ways to install software on Ubuntu
Windows users install software by downloading an .exe and clicking through a wizard. Linux has a richer ecosystem: a central package repository with thousands of applications, manual .deb package installation, and sandboxed Snap packages. This week students use all three methods, understand why each exists, and learn how to manage, query, and remove software cleanly.
Week at a glance
apt update/upgrade, apt search/install, inspecting dependencies and source repos
Install, query, and purge .deb files manually; compare dpkg vs. apt
Snap install, channels, confinement — why kmahjongg fails and what that teaches
sources.list, PPAs, apt-cache, pinning, apt-mark
Written: package manager comparison. Practical: install/query/remove with all three tools.
Week 3 target: Levels 7–10
Levels 7–10 are heavily grep, sort, uniq, and strings — the same tools students are using in Lab 2 this week. Level 7 uses grep to find a word in a large file. Level 8 uses sort and uniq to find the only unique line. Level 9 uses strings on a binary file. Level 10 adds base64 decoding. All very achievable this week.
APT — the package manager students will use every day
apt update refreshes the package list from repos (does not install anything — like refreshing Windows Update without downloading). apt upgrade installs available updates. apt search keyword, apt show package, apt install package, apt remove (leaves config), apt purge (removes everything). Dependencies explained: packages declare what they need; apt resolves the full tree automatically. Bridge: Windows Update vs. apt — same idea, but apt covers all software on the system, not just the OS.apt update. Use apt to find a program that displays a talking cow. Install it, run it in both the GUI terminal and TTY4. Document the package name, version, dependencies, and which repository it came from (apt show reveals the source). Note: the lab asks students to make the cow say "Who let the cows out, MOO, MOO, MOO!" — the answer involves a pipe, nicely reinforcing Week 4 preview.fortune | cowsay — students who haven't seen pipes yet will be curious. Plant the seed for Week 4.dpkg — manual package management when APT isn't enough
-i install, -r remove, -P purge, -l list installed, -L package list files owned by a package, -S filepath find which package owns a file, --get-selections export full package list. Difference between .deb (Debian/Ubuntu) and .rpm (Red Hat/Fedora/CentOS): same concept, different format and tooling. dpkg will tell you about unmet dependencies but won't resolve them automatically — that's where apt takes over.dpkg -i — observe any dependency messages. Query dependencies with dpkg -I dropbox.deb. Try installing the same version with apt. Purge with dpkg. Reinstall with dpkg, then remove with apt — observe how apt can remove dpkg-installed packages. Answer: when would you use dpkg rather than apt?Snap — sandboxed packages and why confinement matters
snap find, snap install, snap list, snap remove, snap info. Snap vs. Flatpak — both solve the same problem differently; Snap is Ubuntu-native.Repository management — sources.list, PPAs, and apt-cache
/etc/apt/sources.list — the file that tells APT where its repositories are. Structure of a repo line: type, URL, distribution, components (main=free+supported, universe=free+community, restricted=non-free+supported, multiverse=non-free+community). PPAs (Personal Package Archives): third-party repositories hosted on Launchpad, added with add-apt-repository ppa:name. Security warning: PPAs are not vetted by Canonical — use trusted sources only. apt-cache search, apt-cache show, apt-cache depends, apt-cache rdepends. apt-mark hold to pin a package version./etc/apt/sources.list and /etc/apt/sources.list.d/. Identify which components are enabled. Use apt-cache depends curl to see the full dependency tree. Use apt-cache rdepends openssh-client to see what depends on it. Add a well-known PPA (e.g. git-core PPA) and observe what changes in sources.list.d. Use apt-mark hold on a package and verify it is excluded from upgrades. Remove the hold.apt list --installed — how many packages are currently installed? Pipe through wc -l. Compare with a freshly installed system count. Discuss why there are so many packages and what "installed" means for libraries.Mini-Assessment 3 — Package Management
apt update does (and doesn't do). Describe what happens when dpkg encounters an unmet dependency. Explain Snap confinement and one scenario where it causes problems. Define the four repository components.| Topic | Weight | Format |
|---|---|---|
| apt/dpkg/snap comparison and use cases | 20% | Written |
| Repository components and sources.list | 10% | Written |
| apt update vs. apt upgrade distinction | 5% | Written |
| Snap confinement explanation | 5% | Written (20% total written) |
| Find, install, verify, remove via apt | 25% | Practical |
| Install, query, purge via dpkg | 25% | Practical |
| Snap search and version comparison | 10% | Practical (70% total practical) |
What you need ready before Monday